diff --git a/system/libraries/Config.php b/system/libraries/Config.php
index ef6d46a..aa26c92 100644
--- a/system/libraries/Config.php
+++ b/system/libraries/Config.php
@@ -7,12 +7,12 @@
  * @package		CodeIgniter
  * @author		Rick Ellis
  * @copyright	Copyright (c) 2006, pMachine, Inc.
- * @license		http://www.codeignitor.com/user_guide/license.html 
+ * @license		http://www.codeignitor.com/user_guide/license.html
  * @link		http://www.codeigniter.com
  * @since		Version 1.0
  * @filesource
  */
- 
+
 // ------------------------------------------------------------------------
 
 /**
@@ -36,12 +36,12 @@
 	 *
 	 * Sets the $config data from the primary config.php file as a class variable
 	 *
-     * @access   public
-     * @param   string    the config file name
-     * @param   boolean  if configuration values should be loaded into their own section
-     * @param   boolean  true if errors should just return false, false if an error message should be displayed
-     * @return  boolean  if the file was successfully loaded or not
-     */
+	 * @access   public
+	 * @param   string	the config file name
+	 * @param   boolean  if configuration values should be loaded into their own section
+	 * @param   boolean  true if errors should just return false, false if an error message should be displayed
+	 * @return  boolean  if the file was successfully loaded or not
+	 */
 	function CI_Config()
 	{
 		$this->config = get_config();
@@ -62,7 +62,7 @@
 		$file = ($file == '') ? 'config' : str_replace(EXT, '', $file);
 	
 		if (in_array($file, $this->is_loaded, TRUE))
-		{                
+		{
 			return TRUE;
 		}
 
@@ -125,7 +125,7 @@
 	{			
 		if ($index == '')
 		{	
-			if ( ! isset($this->config[$item])) 
+			if ( ! isset($this->config[$item]))
 			{
 				return FALSE;
 			}
@@ -134,7 +134,7 @@
 		}
 		else
 		{
-			if ( ! isset($this->config[$index])) 
+			if ( ! isset($this->config[$index]))
 			{
 				return FALSE;
 			}
@@ -147,7 +147,7 @@
 			$pref = $this->config[$index][$item];
 		}
 
-        return $pref;
+		return $pref;
 	}
   	
   	// --------------------------------------------------------------------
@@ -165,7 +165,7 @@
 	 */		
 	function slash_item($item)
 	{
-		if ( ! isset($this->config[$item])) 
+		if ( ! isset($this->config[$item]))
 		{
 			return FALSE;
 		}
@@ -179,8 +179,8 @@
 				$pref .= '/';
 			}
 		}
-        
-        return $pref;
+
+		return $pref;
 	}
   	
 	// --------------------------------------------------------------------
@@ -195,7 +195,7 @@
 	function site_url($uri = '')
 	{
 		if (is_array($uri))
-		{ 
+		{
 			$uri = implode('/', $uri);
 		}
 		
